package leetcode;

import java.util.Scanner;

//5. 最长回文子串
public class Palindrome {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        int l=s.length();
        char[] chars = s.toCharArray();
        //暴力解法暴力遍历匹配是否是回文子串
// int max=1;
//        char[] chars = s.toCharArray();
//        String a=s.substring(0,1);
//        int[] ch=new int[26];
//        int j=0;
//        ch[chars[j]-97]=j;
////        boolean c=judgment("babad");//测试回文判断
////        System.out.println(c);
//        for (int i = 0; i < chars.length-1; i++) {
//            for (int k = i+1; k < chars.length; k++) {
//                if(judgment(s.substring(i,k+1))){
//                    if(max<k+1-i){
//                        max=k-i+1;
//                        a=s.substring(i,k+1);
//                    }
//                }
//            }
//        }
//        System.out.println(a);

        /**
         * 动态规划解法
         * 思路：类似背包算法
         * 将i  j以内的最长字符串保存下来判断到超越i j大小的字符串时从s【i，j】中去取出包含在内的最长回文子串
         * 再从中心开始向外扩撒去判断是否存在更长的回文子串
         * 特殊点：回文字串中要是回文字串可以不停向外扩张去判断是否已经是最长的回文子串
         */
        char[][]a=new char[l][l];//i代表开头j代表结尾整个数组代表i到j中的最长回文子串
        for (int i = 0; i < l; i++) {
            for (int j = i; j < l; j++) {

                if(i==j){
                    a[i][j]=chars[i];
                }
                char c = a[i][j];
//
            }
        }



    }
//    public static boolean judgment(String s){
//        char[] chars = s.toCharArray();
//
//        int r=s.length()/2;
//        int l=s.length();
//        boolean t=true;
//        for (int i = r; i < l; i++) {
//            if(chars[i]==chars[l-1-i]){
//                t=true;
//            }else {
//                t=false;
//                return t;
//            }
//        }
//        return t;
//    }
}
